home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Information / CSMP Digest / volume 1 / csmp-v1-164.txt < prev    next >
Encoding:
Text File  |  1994-12-08  |  42.4 KB  |  1,095 lines  |  [TEXT/R*ch]

  1. C.S.M.P. Digest             Mon, 10 Aug 92       Volume 1 : Issue 164
  2.  
  3. Today's Topics:
  4.  
  5.     Is GetTicks accurate on Powerbooks?
  6.     THINK Pascal and MacApp 2.x (was Re: MacApp versus TCL)
  7.     Multiple transmissions using ADSP?! Help!
  8.     Is there anything other than MacinTalk?
  9.     Q: memory err -111 on HandToHand?
  10.     info on innards of Quicktime
  11.     Hide Others...
  12.     Weirdly, Exit Hangs Think Pascal If Debugging Is On
  13.     Palettes vs. Color Tables : need help
  14.     Debugging INITs
  15.  
  16.  
  17.  
  18. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  19.  
  20. The digest is a collection of article threads from the internet newsgroup
  21. comp.sys.mac.programmer.  It is designed for people who read c.s.m.p. semi-
  22. regularly and want an archive of the discussions.  If you don't know what a
  23. newsgroup is, you probably don't have access to it.  Ask your systems
  24. administrator(s) for details.  (This means you can't post questions to the
  25. digest.)
  26.  
  27. Each issue of the digest contains one or more sets of articles (called
  28. threads), with each set corresponding to a 'discussion' of a particular
  29. subject.  The articles are not edited; all articles included in this digest
  30. are in their original posted form (as received by our news server at
  31. cs.uoregon.edu).  Article threads are not added to the digest until the last
  32. article added to the thread is at least one month old (this is to ensure that
  33. the thread is dead before adding it to the digest).  Article threads that
  34. consist of only one message are generally not included in the digest.
  35.  
  36. The entire digest is available for anonymous ftp from ftp.cs.uoregon.edu
  37. [128.223.8.8] in the directory /pub/mac/csmp-digest.  Be sure to read the
  38. file /pub/mac/csmp-digest/README before downloading any files.  The most
  39. recent issues are available from sumex-aim.stanford.edu [36.44.0.6] in the
  40. directory /info-mac/digest/csmp.  If you don't have ftp capability, the sumex
  41. archive has a mail server; send a message with the text '$MACarch help' (no
  42. quotes) to LISTSERV@ricevm1.rice.edu for more information.
  43.  
  44. The digest is also available via email.  Just send a note saying that you
  45. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  46. automatically receive each new issue as it is created.  Sorry, back issues
  47. are not available through the mailing list.
  48.  
  49. Send administrative mail to mkelly@cs.uoregon.edu.
  50.  
  51.  
  52. -------------------------------------------------------
  53.  
  54. From: CHARLESW@QUCDN.QueensU.CA
  55. Subject: Is GetTicks accurate on Powerbooks?
  56. Date: 4 Jul 92 18:52:20 GMT
  57. Organization: Queen's University at Kingston
  58.  
  59.  
  60.   Do the power-saving or sleep features on a PowerBook prevent the use of
  61. GetTicks for calculating elapsed times?  I need accuracy of the order of a
  62. few seconds over an hour or two.
  63.  
  64.   Thanks,
  65.  
  66. .../dave   Dave Charlesworth
  67.  
  68. +++++++++++++++++++++++++++
  69.  
  70. From: keith@taligent.com (Keith Rollin)
  71. Date: 4 Jul 92 22:53:39 GMT
  72. Organization: Taligent
  73.  
  74. In article <92186.145220CHARLESW@QUCDN.QueensU.CA>, CHARLESW@QUCDN.QueensU.CA
  75. writes:
  76. >
  77. >Do the power-saving or sleep features on a PowerBook prevent the use of
  78. >GetTicks for calculating elapsed times?  I need accuracy of the order of a
  79. >few seconds over an hour or two.
  80. >
  81.  
  82. Couldn't you use GetDateTime or ReadDateTime instead? Since you only need to be
  83. accurate to a few seconds, then you shouldn't need the 1/60 second resolution
  84. that ticks give you. And Inside Mac warns you that TickCount (GetTicks is an
  85. Apple IIgs call) can easily skip a tick or two from time to time as interrupts
  86. are disabled, so it's not a good idea to use it for timing over a long period of
  87. time.
  88.  
  89. - --
  90. Keith Rollin
  91. Phantom Programmer
  92. Taligent, Inc.
  93.  
  94.  
  95. +++++++++++++++++++++++++++
  96.  
  97. From: CHARLESW@QUCDN.QueensU.CA
  98. Date: 5 Jul 92 03:46:43 GMT
  99. Organization: Queen's University at Kingston
  100.  
  101.  
  102.   The problem with GetDateTime et al. is that if the user changes the time then
  103. the calculation of elapsed time will be wrong.  GetTicks doesn't have this
  104. drawback.  This application may be used while travelling (suppose I had
  105. money for both a PowerBook AND a return ticket to Cupertino...), or while a
  106. person adjusts their clock (some people use an automated utility to adjust
  107. their clocks daily).
  108.  
  109.   In summary then, I either need to time things independently of the "time",
  110. or I need to know when the user has adjusted the clock.
  111.  
  112.   Thanks for your prompt suggestions.
  113.  
  114.   Cheers,
  115.  
  116. .../dave   Dave Charlesworth
  117.  
  118. +++++++++++++++++++++++++++
  119.  
  120. From: baker4@husc10.harvard.edu (David Baker)
  121. Date: 6 Jul 92 09:41:24 GMT
  122. Organization: Department of Psychology, Harvard University
  123.  
  124. In article <92186.145220CHARLESW@QUCDN.QueensU.CA> CHARLESW@QUCDN.QueensU.CA writes:
  125.  
  126.      Do the power-saving or sleep features on a PowerBook prevent the use of
  127.    GetTicks for calculating elapsed times?  I need accuracy of the order of a
  128.    few seconds over an hour or two.
  129.  
  130.  
  131. Dave--
  132.  
  133. First, I don't think that TickCount is affected by sleep time, but I know it
  134. can be affected by interrupt disabling, as was mentioned in a previous
  135. response.  Why not just avoid the whole problem and use the Time Manager?
  136.  
  137. David
  138.  
  139. - --
  140. - -------------------------------------------------------------------------------
  141. David P. Baker                Misbrainer:
  142. Work: dpb@huelings.harvard.edu        The onions impressed herein are mine,
  143. Home: baker4@husc.harvard.edu        not throes of my imploder.
  144. Office: William James Hall, 1204    He wouldn't want 'em, anyway.
  145.     (617) 495-3773
  146.     Department of Psychology
  147.     Harvard University
  148. - -------------------------------------------------------------------------------
  149.  
  150. +++++++++++++++++++++++++++
  151.  
  152. From: CHARLESW@QUCDN.QueensU.CA
  153. Date: 7 Jul 92 00:36:07 GMT
  154. Organization: Queen's University at Kingston
  155.  
  156. David Baker says:
  157.  
  158. > Why not just avoid the whole problem and use the Time Manager?
  159.  
  160. Well, you are right I guess.  I've just been following the maxim "use the
  161. simplest tool the will do the job effectively".  Using GetTicks doesn't
  162. require any tasks that need cleanup, doesn't fiddle with A5-worlds at interrupt
  163. time, doesn't have re-entrancy questions, and is less likely to carry the
  164. entire system with it if the application crashes (leaving a pointer for the
  165. Time Manager to execute random memory).  So, it's not that it's difficult,
  166. it's just that I prefer to choose the simpler route if it works.
  167.  
  168.   None of the things I've seen has definitively said that GetTicks is wrong
  169. on a PowerBook (except for disk accesses and other interrupt-masking, same
  170. as any other Mac).  GetTicks has worked fine for, oh, two or three years now,
  171. but PowerBooks are on the horizon for us (I hope).
  172.  
  173.   Thanks for your reply.
  174.  
  175. .../dave  Dave Charlesworth
  176.  
  177. +++++++++++++++++++++++++++
  178.  
  179. From: dorner@pequod.cso.uiuc.edu (Steve Dorner)
  180. Date: 7 Jul 92 17:25:25 GMT
  181. Organization: University of Illinois at Urbana-Champaign
  182.  
  183. <CHARLESW@QUCDN.QueensU.CA> writes:
  184. > The problem with GetDateTime et al. is that if the user changes the time then
  185. >the calculation of elapsed time will be wrong.
  186. >This application may be used while travelling
  187.  
  188. Of course, if Apple would ever start keeping the time in UTC instead of
  189. local time, like UNIX has been doing for 20 years, this problem would
  190. be greatly lessened.
  191.  
  192. For a supposedly "international" computer with "built-in networking" the
  193. Mac is sorely lacking timewise.
  194. - -- 
  195. Steve Dorner, Official Lame Duck, U of Illinois Computing Services Office
  196. Internet: s-dorner@uiuc.edu  UUCP: uunet!uiucuxc!uiuc.edu!s-dorner
  197.  
  198. +++++++++++++++++++++++++++
  199.  
  200. From: peirce@outpost.SF-Bay.org (Michael Peirce)
  201. Date: 8 Jul 92 00:29:05 GMT
  202. Organization: Peirce Software
  203.  
  204.  
  205. In article <Br14EE.IDH@news.cso.uiuc.edu> (comp.sys.mac.programmer), dorner@pequod.cso.uiuc.edu (Steve Dorner) writes:
  206. > <CHARLESW@QUCDN.QueensU.CA> writes:
  207. > > The problem with GetDateTime et al. is that if the user changes the time then
  208. > >the calculation of elapsed time will be wrong.
  209. > >This application may be used while travelling
  210. > Of course, if Apple would ever start keeping the time in UTC instead of
  211. > local time, like UNIX has been doing for 20 years, this problem would
  212. > be greatly lessened.
  213. > For a supposedly "international" computer with "built-in networking" the
  214. > Mac is sorely lacking timewise.
  215.  
  216. You can adjust for timezones on the Mac.  Its easy.
  217.  
  218. The only problem I've run into is that lots of people don't seem to
  219. set their time zone.  Your software can figure this out by noticing
  220. a delta off GMT of zero.  Of course, there are some people who HAVE
  221. a delta off GMT of zero.  My solution to this was to ask once if they
  222. had forgotten to set the timezone or if they really were on GMT.
  223.  
  224. You set your timezone using the Map control panel.  May people seem
  225. to trash this, so my software provides a way to set the timezone from
  226. within itself too.
  227.  
  228. - --  Michael Peirce      --   peirce@outpost.SF-Bay.org
  229. - --  Peirce Software     --   Suite 301, 719 Hibiscus Place
  230. - --                      --   San Jose, California USA 95117
  231. - --  Makers of...        --   voice: (408) 244-6554 fax: (408) 244-6882
  232. - --            SMOOTHIE  --   AppleLink: peirce & America Online: AFC Peirce
  233.  
  234. +++++++++++++++++++++++++++
  235.  
  236. From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
  237. Organization: Kalamazoo College
  238. Date: Wed, 8 Jul 1992 13:10:21 GMT
  239.  
  240. peirce@outpost.SF-Bay.org (Michael Peirce) writes:
  241. >
  242. >The only problem I've run into is that lots of people don't seem to
  243. >set their time zone.  Your software can figure this out by noticing
  244. >a delta off GMT of zero.  Of course, there are some people who HAVE
  245. >a delta off GMT of zero.  My solution to this was to ask once if they
  246. >had forgotten to set the timezone or if they really were on GMT.
  247.  
  248. I always figured you could check latitude and longitude to see if they
  249. were (0,0)...
  250. - -- 
  251.  Jamie McCarthy      Internet: k044477@kzoo.edu      AppleLink: j.mccarthy
  252.  Life is a merry merry-go-round;  try to learn the secret I have found.
  253.  Free and easy, easy and free.  That's the way it's gotta be.
  254.  
  255. +++++++++++++++++++++++++++
  256.  
  257. From: dorner@pequod.cso.uiuc.edu (Steve Dorner)
  258. Date: 8 Jul 92 13:55:52 GMT
  259. Organization: University of Illinois at Urbana-Champaign
  260.  
  261. peirce@outpost.SF-Bay.org (Michael Peirce) writes:
  262. >You can adjust for timezones on the Mac.  Its easy.
  263.  
  264. And what about the timestamps on files in the filesystem?
  265. It doesn't bother you that by "adjusting for timezones" you can put
  266. your files into the future (or age them prematurely)?
  267.  
  268. I won't even say "Daylight Savings Time", because it's not supported
  269. (unless somebody can tell me exactly how "dlsDelta" is supposed to 
  270. be used, a question I have often asked).
  271.  
  272. >Of course, there are some people who HAVE
  273. >a delta off GMT of zero.  My solution to this was to ask once if they
  274. >had forgotten to set the timezone or if they really were on GMT.
  275.  
  276. The Script Manager documentation claims that <0,0,0> means uninitialized.
  277. So you really should only have to do this for people on the equator at
  278. exactly 0 longitude.  This is in the Atlantic Ocean, somewhere near Lagos.
  279. - -- 
  280. Steve Dorner, Official Lame Duck, U of Illinois Computing Services Office
  281. Internet: s-dorner@uiuc.edu  UUCP: uunet!uiucuxc!uiuc.edu!s-dorner
  282.  
  283. ---------------------------
  284.  
  285. From: sawtelle@mariposa.stonecutter.com (Don Sawtelle)
  286. Subject: THINK Pascal and MacApp 2.x (was Re: MacApp versus TCL)
  287. Date: 8 Jul 92 08:49:57 GMT
  288. Organization: Stonecutter Software
  289.  
  290. In article <lsr-060792133924@lsr.taligent.com> (comp.sys.mac.programmer), lsr@taligent.com (Larry Rosenstein) writes:
  291. > Also, you can use MacApp from MPW Object Pascal.  (Or if you have THINK
  292. > Pascal, you may be able to get MacApp 2.x and use MacApp from THINK
  293. > Pascal.)
  294.  
  295. I have long been a happy advocate of THINK Pascal's fast turnaround
  296. time for MacApp 2.x development. But I have also long suffered the bugs
  297. in Think Pascal that come out of the woodwork when you use it to debug
  298. large MacApp programs. Now I have resigned myself to thinking that
  299. Think Pascal will probably never be solid for MacApp development--
  300. because there aren't many people using MacApp with Think Pascal, and
  301. the number will likely keep dropping given the success of the C++
  302. emphasis of MacApp 3. For that matter, I'm not sure why Symantec would
  303. put the effort into another major rev of Think Pascal, except as part
  304. of maintaining a presence whatever education markets may still be doing
  305. a lot of Pascal.
  306.  
  307. Therefore I caution those who haven't already made the investment in
  308. figuring out how to live with the problems: avoid using Think Pascal
  309. for MacApp development.
  310.  
  311. For example:
  312.  
  313. Reset is dangerous. If a bug makes it impossible for me to Quit from the
  314. application being debugged I reboot rather than Reset. Otherwise Think
  315. Pascal crashes later. (sooner? :-)
  316.  
  317. You can't use the Think debugger to debug failure handling during
  318. application initialization. If you do, Think Pascal crashes. In order
  319. to do any debugging of failure handling during application
  320. initialization, you have to (for example) split your custom application
  321. initialization off from MacApp's built-in application initialization
  322. and use a flag to trigger yours during the first cycle of the event loop. 
  323.  
  324. Some have reported incompatibility between 4.0.1 and the special
  325. versions of Failure that make it possible to use the THINK Pascal
  326. debugger after a failure has occurred. In some cases, this may be
  327. specific to the Quadra. I don't know; I decided to stick with 4.0.
  328.  
  329. Projects sometimes get corrupted. They can't be fixed by removing
  330. objects and recompiling everything--you have to create a new project
  331. from scratch. Corrupted projects can cause weird symptoms that look
  332. like bugs in your application, causing major false bug-hunt sidetracks
  333. that eat gobs of time before you finally find that rebuilding the
  334. project from scratch makes everything work just perfectly.
  335.  
  336. Some of these problems might be fixed in 4.0.1, I don't know. My
  337. attempt to use 4.0.1 on a large MacApp application failed miserably--I
  338. experienced repeated not-enough-memory errors (when there was enough)
  339. and crashes during compiles, without ever having run the
  340. application--which is why I went running back to 4.0.
  341.  
  342. Other than these serious problems Think Pascal is a great environment
  343. for MacApp development. I live with the problems in order to avoid
  344. the slow turnaround of MPW and because I like the Think Pascal
  345. debugger. I'm still using MacApp 2 because I've been working on a
  346. mature, stable application that I wrote before MacApp 3 existed. I
  347. wouldn't start a new project in MacApp 2.
  348.  
  349. In general I like the Think compilers, but I find that Think Pascal has
  350. repeatedly fallen short of the mark for MacApp development. And at this point
  351. the economics probably don't justify trying to fix the problem, given the
  352. decline of MacApp 2 and Object Pascal.
  353.  
  354. Don
  355.  
  356. - ---
  357. Don Sawtelle:Stonecutter Software:Mariposa, CA
  358. sawtelle@stonecutter.com
  359.  
  360. +++++++++++++++++++++++++++
  361.  
  362. From: siegel@world.std.com (Rich Siegel)
  363. Organization: GCC Technologies
  364. Date: Wed, 8 Jul 1992 12:08:35 GMT
  365.  
  366. In article <01050131.7vui47@mariposa.stonecutter.com> sawtelle@stonecutter.com writes:
  367. >
  368. >I have long been a happy advocate of THINK Pascal's fast turnaround
  369. >time for MacApp 2.x development. But I have also long suffered the bugs
  370. >in Think Pascal that come out of the woodwork when you use it to debug
  371. >large MacApp programs. Now I have resigned myself to thinking that
  372. >Think Pascal will probably never be solid for MacApp development--
  373.  
  374. [enumerates problems using MacApp with THINK Pascal]
  375.  
  376. In general, the instabilities encountered when using MacApp in THINK
  377. Pascal are traceable back to one simple problem: MacApp was never
  378. intended for use with anything other than MPW.
  379.  
  380. MacApp 2.0 made use of new language constructs which were (at the
  381. time) supported only by the MPW Pascal compiler; it was clear that
  382. many of these extensions were added purely to support MacApp, and for
  383. no other reason.
  384.  
  385. At runtime, the MacApp architecture made lots of assumptions about the
  386. environment it was running in; initially, MacApp assumed that (a) it
  387. owned the window list; (b) its code resources and all other
  388. application resources were in the same resource file, and (c) a number
  389. of other little things which are only true when running as a
  390. standalone application. MacApp plays all kinds of little games with
  391. the machine which should only be played by one at a time, such as
  392. installing exception vector hooks, bottlenecking some of the same
  393. traps that THINK Pascal itself bottlenecks, and so forth.
  394.  
  395. The bottom line is that MacApp and THINK Pascal are not an entirely
  396. happy mixture. Don's experiences are pretty rare - many MacApp users
  397. don't seem to have problems (or if they do, they don't report them) -
  398. but they're not unique either. The turnaround time is superior, and
  399. things generally work well, but when push comes to shove, things
  400. break.
  401.  
  402. The original MacApp conversion for THINK Pascal was done under heavy
  403. marketing pressure, applied by a vocal minority. It was started when
  404. there was no clear idea of the scope of effort involved, took longer
  405. than expected to complete, required a whole lot of blood, sweat,
  406. tears, and cursing on the part of the THINK Pascal 3.0 team (including
  407. myself, who handled compatibility from the MacApp end), and has added
  408. no significant value to the product. (A couple of useful features have
  409. gone into the linker, but that's about it...) The investment of time
  410. and money has not been returned, as far as I am aware. When Apple
  411. announced the decision to switch to C++ for MacApp, I was both bitter
  412. and relieved; bitter, because we'd gone to all this work only to have
  413. the rug jerked out, and relieved because I wasn't going to have to
  414. wrestle with the damn thing anymore.
  415.  
  416. So, having vented thus far, let me repeat the following: If you want
  417. to use MacApp and Pascal, use MPW. It's way slow, and the debuggers
  418. aren't very good compared to THINK Pascal, but MacApp is happiest that
  419. way.  For any other Pascal task, get THINK Pascal. If you don't have a
  420. class library and want one, start with THINK Pascal (or THINK C) and
  421. the THINK Class Library. It's the easiest way to get started, and what
  422. you learn with the TCL can be applied to learning MacApp, should you
  423. ever choose to do so.
  424.  
  425. R.
  426. - -- 
  427. - -----------------------------------------------------------------------
  428. Rich Siegel                              Internet: siegel@world.std.com
  429. Software Engineer & Toolsmith
  430. GCC Technologies
  431.  
  432. ---------------------------
  433.  
  434. From: yjc@po.cwru.edu (Jerome Chan)
  435. Subject: Multiple transmissions using ADSP?! Help!
  436. Date: 1 Jul 92 02:50:58 GMT
  437. Organization: Alethea, The Twilight World!
  438.  
  439.  
  440.   I'm trying to write a small little Net Trek / Dog Fight game and I ran
  441. across this question:
  442.  
  443.   Is it possible to "broadcast/multi-cast" to using ADSP connections?
  444.  
  445.   I'm thinking of having a "client" that displays a map showing all the
  446. enemy ships and a "server" that does all the necessary calculations. I
  447. was wondering if I could transmit the location of all the ships at one
  448. time instead of using brute force and transmitting the same positional
  449. data to each "Client" separately.
  450.  
  451.   I know you can have several CCBs to a socket (it's documented in Vol
  452. VI)  but is it possible to have several "Clients" talking or listening to
  453. ONE socket on the "server"? If this is possible, how will the "server"
  454. know which "client" is sending the data?
  455.  
  456.   Just an uncertain Mac Programmer.
  457.  
  458. * Alert New Virus T4 discovered! Check comp.sys.mac.announce! *
  459.  
  460. - ---
  461.  Fading
  462.  
  463. +++++++++++++++++++++++++++
  464.  
  465. From: Jerome Chan <yjc@po.cwru.edu>
  466. Organization: Alethea, The Twilight World!
  467. Date: Wed, 1 Jul 92 06:08:33 GMT
  468.  
  469. In article <1992Jul1.025058.19880@usenet.ins.cwru.edu> Jerome Chan,
  470. yjc@po.cwru.edu writes:
  471. >  Is it possible to "broadcast/multi-cast" to using ADSP connections?
  472.  
  473. If I can't use ADSP, what other protocols can I use for a broadcast type
  474. call? Is there documentation somewhere to help me on this?
  475.  
  476. +++++++++++++++++++++++++++
  477.  
  478. From: jmunkki@vipunen.hut.fi (Juri Munkki)
  479. Date: 1 Jul 92 22:32:50 GMT
  480. Organization: Helsinki University of Technology
  481.  
  482. In article <1992Jul1.060833.29479@usenet.ins.cwru.edu> Jerome Chan <yjc@po.cwru.edu> writes:
  483. >Is it possible to "broadcast/multi-cast" to using ADSP connections?
  484.  
  485. Not as far as I know.
  486.  
  487. >If I can't use ADSP, what other protocols can I use for a broadcast type
  488. >call? Is there documentation somewhere to help me on this?
  489.  
  490. DDP is the highest Appletalk protocol level that supports broadcasting.
  491. The problem is that all the receiving stations must use the same socket
  492. number, so you can't rely on dynamic socket number allocation and that
  493. means that you either have to reserve your own socket number or try to
  494. pick one of the experimental socket numbers and hope that no one else
  495. is using that number.
  496.  
  497. Further problems:
  498.  
  499.     o   DDP broadcasts only reach one physical zone. 
  500.     o   DDP only makes a best effort to send a packet.
  501.         It never resends or checks for lost packets.
  502.     o   DDP packet size is limited.
  503.     o   You have to write a socket listener is assembly language.
  504.  
  505. If you are good at writing network software, DDP is probably the
  506. most efficient way to write a multiple player network protocol. The
  507. problems might still outweigh the benefits.
  508.  
  509. If you can write your game without broadcasts using a higher level
  510. protocol, do it. Appletalk isn't really designed for broadcasts.
  511.  
  512. If only we had more intelligent and faster hardware network support,
  513. there would be no need to use tricks to make communications to multiple
  514. clients fast. (Ethertalk is fast enough. Localtalk is slow and processor-
  515. intensive.)
  516.  
  517. - -- 
  518.   Juri Munkki                           Windsurf: fast sailing
  519.  jmunkki@hut.fi                          Macintosh: fast software
  520.  
  521. +++++++++++++++++++++++++++
  522.  
  523. From: yjc@po.cwru.edu (Jerome Chan)
  524. Date: 2 Jul 92 02:44:40 GMT
  525. Organization: Alethea, The Twilight World!
  526.  
  527. In article <1992Jul1.223250.5195@nntp.hut.fi> Juri Munkki,
  528. jmunkki@vipunen.hut.fi writes:
  529. >Further problems:
  530. >
  531. >    o   DDP broadcasts only reach one physical zone. 
  532. >    o   DDP only makes a best effort to send a packet.
  533. >        It never resends or checks for lost packets.
  534. >    o   DDP packet size is limited.
  535. >    o   You have to write a socket listener is assembly language.
  536.  
  537.   I've arrived at the same conclusion after some hours ripping through
  538. Inside Macintoshes, the Q & A stack (4.0.9) and very helpful mail from
  539. several Net Persons. Thanks People!
  540.  
  541.   The Q & A stack also says that broadcasting data tends to slow down
  542. other Macintoshes on the network, so broadcasting is out of the question
  543. (Besides my network manager would kill me! :)). I'll most probably have a
  544. little loop that resends the same data over and over again.
  545.  
  546.   I'm not too worried about lost packets as the data is very time
  547. critical and missing a few packets won't affect the game much (I hope 
  548. :)) and the size of the data packets aren't that big.
  549.  
  550.   What's wrong with the default DDP socket listener provided by Apple? Is
  551. there a problem with it? Why do I have to write my own socket listener?
  552.  
  553.   Thanks also to Stuart Cheshire <cheshire@cs.stanford.edu> for sharing
  554. his DDP loop idea where each macintosh relays each packet from one
  555. machine to another in a circle. Thanks also to jimc@large.isc-br.com (Jim
  556. Cathey), "Mike Shoemaker" <mike_shoemaker@gateway.qm.apple.com>,
  557. milton@ccu.UManitoba.CA (Dave Milton) and Peter N Lewis
  558. <peter@cujo.curtin.edu.au> for their advice.
  559.  
  560.   Apple, please defragement your documentation as fast as possible.
  561. Searching through Tech Notes, Hypercard Stacks and Inside Macintosh is
  562. not fun. Please, please, pretty please. :)
  563.  
  564. - ---
  565.  Fading
  566.  
  567. +++++++++++++++++++++++++++
  568.  
  569. From: jmunkki@vipunen.hut.fi (Juri Munkki)
  570. Organization: Helsinki University of Technology
  571. Date: Thu, 2 Jul 1992 16:32:20 GMT
  572.  
  573. In article <1992Jul2.024440.18058@usenet.ins.cwru.edu> Jerome Chan <yjc@po.cwru.edu> writes:
  574. >  What's wrong with the default DDP socket listener provided by Apple? Is
  575. >there a problem with it? Why do I have to write my own socket listener?
  576.  
  577. I think it had problems with MultiFinder, but I'm not sure. Anyway, I think
  578. it exists only in the old Pascal-style interfaces. Correct me if I'm wrong.
  579.  
  580. Before you go off and write your own stuff, you should probably check out
  581. the ADSP and NBP classes that were posted at ftp.brown.edu just a few days
  582. ago. I'll certainly try them if I need to do some network programming.
  583. Objects should make networking much easier than it is now and I have heard
  584. only good things about ADSP.
  585.  
  586. - -- 
  587.   Juri Munkki                           Windsurf: fast sailing
  588.  jmunkki@hut.fi                          Macintosh: fast software
  589.  
  590. ---------------------------
  591.  
  592. From: ahn@mpx2.lampf.lanl.gov (Hyo E. Ahn)
  593. Subject: Is there anything other than MacinTalk?
  594. Organization: Los Alamos National Laboratory
  595. Date: Wed, 1 Jul 1992 10:02:00 GMT
  596.  
  597.  
  598.     Is there anything other than Macintalk to generate human voice?
  599.     I am curious to know if it's possible to have some color in generating
  600.     human voice (e.g., child voice).
  601.  
  602.     
  603.     Hyo Ahn, Los Alamos National Laboratory
  604.  
  605.     Bitnet:        AHN@LAMPF
  606.     Internet:    AHN@DAC.LAMPF.LANL.GOV
  607.  
  608. +++++++++++++++++++++++++++
  609.  
  610. From: haynes@mace.cc.purdue.edu (Carl W. Haynes III)
  611. Date: 1 Jul 92 18:46:26 GMT
  612. Organization: Purdue University
  613.  
  614. In article <1JUL199204021097@mpx2.lampf.lanl.gov> ahn@mpx2.lampf.lanl.gov (Hyo E. Ahn) writes:
  615. >
  616. >    Is there anything other than Macintalk to generate human voice?
  617. >    I am curious to know if it's possible to have some color in generating
  618. >    human voice (e.g., child voice).
  619.  
  620. On page 92 of the July issue of Byte there is a little blurb about the
  621. Sound Bytes Developer's Kit which is described as letting you
  622. incorporate speech Synthessis into new or existing Mac applications.
  623. This is all I know about it, I called and they're supposed to send me
  624. info about it. Contact is listed as:
  625.  
  626.   Emerson & Stern Associates
  627.   10150 Sorento Valley Rd.
  628.   Suite 210
  629.   San Diego, CA 92121
  630.   voice: 619-457-2526
  631.   fax: 619-457-1876
  632.  
  633. Price is listed at $3750.00 plus run-time license fees, obviously aimed
  634. at commercial developers.
  635. I'd be happy to post more info when I get the literature, if there's interest.
  636.  
  637. Then again, there's always Apple's new text-to-speech synthesiser they've 
  638. been talking about for years. Although they have given no hint of
  639. a release date.
  640.  
  641. carl
  642.  
  643.  
  644. - --
  645. Carl W. Haynes III  
  646. Haynes Consulting Services        ||  CWH3@aol.com
  647. PO Box 2715                       ||  haynes@mace.cc.purdue.edu
  648. W. Lafayette, IN 47906            ||  voice: 317 463-6383
  649. - ----------------------------------------------------------------------
  650.                   Macintosh Programming & Consulting
  651.  
  652. ---------------------------
  653.  
  654. From: felciano@summit.stanford.edu (Ramon M. Felciano)
  655. Subject: Q: memory err -111 on HandToHand?
  656. Date: 1 Jul 92 22:56:27 GMT
  657. Organization: DSO, Stanford University
  658.  
  659. I'm trying to make a copy of a handle grabbed from my TE record.
  660.  
  661. I pull it out of the record, then do a HandToHand on it. I get -111 as
  662. a result (memWZerr), which THINK Reference says means I tried to
  663. operate on a "free" block. What does that mean?
  664.  
  665. Thanks!
  666.  
  667. Ramon
  668.  
  669. +++++++++++++++++++++++++++
  670.  
  671. From: neal@farallon.com (Neal Trautman)
  672. Date: 2 Jul 92 12:39:38 GMT
  673. Organization: Farallon Computing, Inc.
  674.  
  675. In article <1992Jul1.225627.10917@leland.Stanford.EDU>, felciano@summit.stanford.edu (Ramon M. Felciano) writes:
  676. > I'm trying to make a copy of a handle grabbed from my TE record.
  677. > I pull it out of the record, then do a HandToHand on it. I get -111 as
  678. > a result (memWZerr), which THINK Reference says means I tried to
  679. > operate on a "free" block. What does that mean?
  680.  
  681. I ran into this just yesterday.  It turned out in my
  682. case that some "other" software was building the handle
  683. by having a global handle variable that pointed to a
  684. global pointer variable that pointed to 10 bytes of global
  685. data that contained region data.  In which case the
  686. handle's data was not in a valid heap zone.  I think
  687. the way I am going to fix it is to call NewHandle
  688. and BlockMove instead of HandToHand.  Since the data
  689. is a region, I'll just use the rgnSize field.
  690.  
  691. - --
  692. Neal Trautman
  693. Timbuktu Lead Software Engineer
  694. Farallon Computing, Inc.
  695. neal@farallon.com
  696.  
  697.  
  698. +++++++++++++++++++++++++++
  699.  
  700. From: gibson@silvertone.Princeton.EDU (John Gibson)
  701. Organization: Princeton University
  702. Date: Thu, 2 Jul 1992 14:33:35 GMT
  703.  
  704. In article <298@farallonfarallon.com> neal@farallon.com (Neal Trautman) writes:
  705. >In article <1992Jul1.225627.10917@leland.Stanford.EDU>, felciano@summit.stanford.edu (Ramon M. Felciano) writes:
  706. >> 
  707. >> I'm trying to make a copy of a handle grabbed from my TE record.
  708. >> 
  709. >> I pull it out of the record, then do a HandToHand on it. I get -111 as
  710. >> a result (memWZerr), which THINK Reference says means I tried to
  711. >> operate on a "free" block. What does that mean?
  712. >> 
  713. >
  714. >I ran into this just yesterday.  It turned out in my
  715. >case that some "other" software was building the handle
  716. >by having a global handle variable that pointed to a
  717. >global pointer variable that pointed to 10 bytes of global
  718. >data that contained region data.  In which case the
  719. >handle's data was not in a valid heap zone.  I think
  720.  
  721. Remember also that HandToHand takes a pointer to a Handle,
  722. not a Handle. From MacProtos.h:
  723.  
  724. pascal OSErr HandToHand(Handle *h);
  725.  
  726. I vaguely remember getting that error when I passed a Handle
  727. instead.
  728.  
  729. So it should be
  730.  
  731. Handle aValidHandle;
  732.  
  733. result = HandToHand(&aValidHandle);
  734.  
  735. - -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
  736. John Gibson                          Princeton Univ. Dept. of Music
  737. gibson@silvertone.Princeton.EDU
  738.  
  739. ---------------------------
  740.  
  741. From: babb@ucselx.sdsu.edu (babb j)
  742. Subject: info on innards of Quicktime
  743. Date: 6 Jul 92 17:57:05 GMT
  744. Organization: San Diego State University Computing Services
  745.  
  746.  
  747. I'm looking for a couple of definitve articles about QuickTime. What I'd
  748. like to know about are: the algorithms used, the format(s) of mooV-ies,
  749. are as many frames loaded into available memory as possible or is the 
  750. working space for a movie a set size and region?, etc. If you know of any
  751. please lemme know. 
  752. Thanx, Jeff.
  753.  
  754. - -- 
  755. Jeff Babb - Programmer/Technical Support - San Diego State University
  756. Language Acquisition Resource Center (L.A.R.C.) (619)594-4475 
  757. babb@ucsvax.sdsu.edu  
  758. .."now go away or I shall taunt you a second time" M.P.& T.H.G. 
  759.  
  760. +++++++++++++++++++++++++++
  761.  
  762. From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  763. Date: 7 Jul 92 14:51:09 GMT
  764. Organization: The World Public Access UNIX, Brookline, MA
  765.  
  766. babb@ucselx.sdsu.edu (babb j) writes:
  767.  
  768.  
  769. >I'm looking for a couple of definitve articles about QuickTime. What I'd
  770. >like to know about are: the algorithms used, the format(s) of mooV-ies,
  771. >are as many frames loaded into available memory as possible or is the 
  772. >working space for a movie a set size and region?, etc. If you know of any
  773. >please lemme know. 
  774. >Thanx, Jeff.
  775.  
  776. The algorithms used will vary; part of QuickTime is a plug-in architectural
  777. construct (the Component Manager) that allows you to use any algorithm
  778. at all. The built in ones are three (really four, but the fourth one is a
  779. "mock" algorithm that does no compression at all, just bit depth conversion
  780. with or without error diffusion):
  781.     1. Animation Compressor: Uses an optionally lossy run-length coder
  782.         for compressing the images at various bit depths. It can
  783.         only be lossy in non-indexed bit depths (ie 16/24/32 bpp).
  784.     2. Photo Compressor: Uses the ISO JPEG algorithm to compress 24 bpp
  785.         images. High quality, compact compression, trades off with
  786.         lack o' speed. Also gets nasty artifacts on sharp edges.
  787.     3. Video Compressor: Proprietary optionally lossy algorithm developed
  788.         by Apple. Designed to decompress at reasonable speeds to
  789.         permit video playback. Implementation details of the
  790.         algorithm are not readily available, but it is licensable
  791.         (and a number of people have signed up, I believe).
  792.  
  793. The format of movies: it depends on what you mean. There are two formats
  794. for movies: a public movie format, which is used to save and load movies
  795. to/from disk, which is too complex to describe in detail here but which is
  796. extensively described in the QuickTime documentation. The private movie
  797. format is what the movie looks like when it's in memory: for all intents
  798. and purposes, the Movie data type is an abstract container. The contents
  799. are undocumented, and only accessible programatically. Peeking in them is
  800. very much a no-no, since it's way likely that they'll change. Both the
  801. private and public movie formats, however, do not contain any playable
  802. media data at all. Rather, they are a complex set of "pointers," if you
  803. will, into one or more data files that contain the data that describes the
  804. media (sampled sound data, compressed image data, etc.).
  805.  
  806. Finally, movies have a "format" in a sense of the sampled digital data that
  807. the media actually consists of. This "format" is really determined by the
  808. "pointers" in the Movie format described above, where the data file is
  809. effectively a sequence of digitized samples, and the "pointers" provide
  810. information about the location and size of the samples in the data stream,
  811. as well as information about the nature of the samples themselves (if it's
  812. a compressed image, what compressor was used for it; if sound data, stuff
  813. like sampling rate, etc.). The format of the samples themselves will vary
  814. with the type of the sample. Some, such as chunks of digitized uncompressed
  815. sound, or images compressed with standard algorithms like JPEG, will be
  816. straightforward to extract and "parse." Others, such as compressed images
  817. in proprietary algorithms such as Apple's Video Compressor (Road Pizza),
  818. are nigh impossible unless you license the stuff from Apple.
  819.  
  820. Memory usage: It depends; the programmer can ask QuickTime to load
  821. specific parts of a Movie into RAM (LoadMovieIntoRAM/LoadMediaIntoRAM calls)
  822. for faster playback. In the course of normal playback, QuickTime will fetch
  823. the data from disk as requested by the movie's clock. QuickTime will also
  824. attempt to cache part of it (each track has a 64K cache associated with it)
  825. for faster retrieval.
  826.  
  827. I'm not sure what you mean by "is the working space for a movie a set size
  828. or region." If you're talking about memory, QuickTime will scavenge memory
  829. from all kindsa places, and if it can't get what it needs, it will not play
  830. that frame/frames that are being troublesome.  Spatially, you can make the
  831. "working space" any size or any region (by using clipping), but the bigger
  832. your movie is the more stress it places on machine resources and thus
  833. it'll be more likely to fail to play properly on lower end machines, or
  834. on CD-ROMs, or, if you make it big enough, it might not even play on a
  835. Quadra... ;)
  836.  
  837. Hope this helps,
  838.  
  839. - -Ivanski
  840.  
  841. - ---
  842. Ivan Cavero Belaunde
  843. Visualist
  844. DiVA Corporation
  845.  
  846.         "A tu escuela llegue, sin entender por que llegaba,
  847.          En tus salones encuentro, mil caminos y encrucijadas,
  848.          Y aprendo mucho ... Y no aprendo na'a ...
  849.          !Maestra vida, camara', te da, te quita, te quita y te da..."
  850.                 - Ruben Blades, "Maestra Vida"
  851.  
  852. ---------------------------
  853.  
  854. From: jth@acpub.duke.edu (JASON HOLTZAPPLE)
  855. Subject: Hide Others...
  856. Date: 1 Jul 92 02:17:51 GMT
  857. Organization: Duke University; Durham, N.C.
  858.  
  859.  
  860.   I'm posting this on behalf of a friend who does not have access to
  861. this newsgroup, but his question has me baffled too:
  862.   Is there a way to send a "Hide Others" command from within an
  863. application? I'm assuming you would have to get the handle to the
  864. application menu and then simulate a mouse down on that selection.
  865. I can't find anything in IM to help. What's the best way to go about
  866. this?
  867. Thanks in advance,
  868. Jason Holtzapple
  869. - -- 
  870. jth@acpub.duke.edu
  871.  
  872. +++++++++++++++++++++++++++
  873.  
  874. From: ivanski@world.std.com (Ivan M CaveroBelaunde)
  875. Date: 7 Jul 92 14:12:21 GMT
  876. Organization: The World Public Access UNIX, Brookline, MA
  877.  
  878. It's not quite legal to do so (you have to rely on undocumented info) but
  879. it's possible. Basically, you need to peek into the menu list with
  880. Macsbug to find out the menu ID of the application menu and then use
  881. the SystemMenu trap to execute it.
  882.  
  883. Be forewarned that the menu ID of the app menu is not officially documented
  884. and you'll probably need to rev your software in the future. You might want
  885. to do some sanity checks to see if it's possible the ID you have in your
  886. code is not valid (get the menu handle and do some sanity checks on that,
  887. or check the system version before doing it and only do it if it's on a
  888. system that you KNOW has that ID for the app menu, etc).
  889.  
  890. Hope this helps,
  891.  
  892. - -Ivan
  893.  
  894. Ivan Cavero Belaunde (ivanski@world.std.com)
  895. Visualist
  896. DiVA Corporation
  897.  
  898.     "A tu escuela llegue, sin entender por que llegaba,
  899.      En tus salones encuentro, mil caminos y encrucijadas,
  900.      Y aprendo mucho ... Y no aprendo na'a ...
  901.      !Maestra vida, camara', te da, te quita, te quita y te da..."
  902.         - Ruben Blades, "Maestra Vida"
  903.  
  904. ---------------------------
  905.  
  906. From: orpheus@reed.edu (P. Hawthorne)
  907. Subject: Weirdly, Exit Hangs Think Pascal If Debugging Is On
  908. Date: 7 Jul 92 11:02:53 GMT
  909. Organization: Reed College, Portland OR
  910.  
  911. The following program hangs Think Pascal if and only if debugging is on.
  912. Why? I've reinstalled the Think Pascal 4.0.1 application, created new
  913. projects, done everything else I can think of, and it still does it.
  914. It didn't used to, as I recall.
  915.  
  916. program Something;
  917.  procedure Test;
  918.   procedure Check (aCondition: Boolean);
  919.  
  920.   begin
  921.    if not aCondition then
  922.     Exit(Test);
  923.   end;
  924.  
  925.  begin
  926.   Check(false);
  927.  end;
  928.  
  929. begin
  930.  Test;
  931. end.
  932.  
  933. All of the segments are locked, neither code optimizations nor compiler
  934. directives nor runtime libraries make any difference. 
  935.  
  936. This has me stumped. As you have probably guessed, the program above is
  937. the result of a long and particularly frustrating bug hunt. 
  938.  
  939. Once upon a time, I found that I could not perform the equivalent of a 
  940. longjmp out of static links in Think Pascal, and never quite figured
  941. out why not. Oh man, you wanna talk about wacky...
  942.  
  943. Theus (orpheus@reed.edu)
  944.  
  945. +++++++++++++++++++++++++++
  946.  
  947. From: siegel@world.std.com (Rich Siegel)
  948. Date: 7 Jul 92 12:01:37 GMT
  949. Organization: GCC Technologies
  950.  
  951. In article <1992Jul7.110253.22244@reed.edu> orpheus@reed.edu (P. Hawthorne) writes:
  952.     [ hangs when doing an uplevel exit() from a nested function ]
  953.  
  954. A bug, which, as far as I know, will be fixed in the next patch of THINK
  955. Pascal. In the meantime, you can either live with it or go back to 4.0,
  956. which shouldn't have this problem.
  957.  
  958. R.
  959.  
  960.  
  961.  
  962. - -- 
  963. - -----------------------------------------------------------------------
  964. Rich Siegel                              Internet: siegel@world.std.com
  965. Software Engineer & Toolsmith
  966. GCC Technologies
  967.  
  968. ---------------------------
  969.  
  970. From: nextweek@reed.edu!nextweek.Reed.Edu!pcalahan (Patrick John Calahan)
  971. Subject: Palettes vs. Color Tables : need help
  972. Date: 7 Jul 92 17:14:29 GMT
  973. Organization: Reed College, Portland, OR
  974.  
  975. I am writing a game and am trying to figure out how to deal with color.   
  976. Animation in the game is through copybits-ing pixmaps, and i would like to  
  977. do additional color animation by animating the palette or color table.
  978.  
  979. My question is, should I even deal with palettes, or should i animate the  
  980. color table directly?  Since speed is of the essence, I don't want
  981. copybits to be slowed down with any color translation...or maybe this
  982. isn't a problem?
  983.  
  984. I'm only beginning to dig into color quickdraw, so any advice on  
  985. whether/how I should deal with the Palette Manager would be appreciated.
  986.  
  987. Thanks
  988.  
  989. +++++++++++++++++++++++++++
  990.  
  991. From: k044477@hobbes.kzoo.edu (Jamie R. McCarthy)
  992. Organization: Kalamazoo College
  993. Date: Tue, 7 Jul 1992 18:43:26 GMT
  994.  
  995. nextweek@reed.edu!nextweek.Reed.Edu!pcalahan (Patrick John Calahan) writes:
  996. >I am writing a game and am trying to figure out how to deal with color.   
  997. >Animation in the game is through copybits-ing pixmaps, and i would like to  
  998. >do additional color animation by animating the palette or color table.
  999. >
  1000. >My question is, should I even deal with palettes, or should i animate the  
  1001. >color table directly?  Since speed is of the essence, I don't want
  1002. >copybits to be slowed down with any color translation...or maybe this
  1003. >isn't a problem?
  1004.  
  1005. It's not a problem if you do it right.  What you want to do is use the
  1006. Palette Manager to get to a screen's color table as directly as
  1007. possible, thereby garnering for yourself all the benefits of the P.M.
  1008. (compatibility, not having to worry about restoring colors) without the
  1009. side-effects of the C.M. (incompatibility, having to worry about
  1010. restoring colors).
  1011.  
  1012. N.B.:  You gotta give up the first and the last color in the CLUT to do
  1013. this, since the P.M. won't ever touch those.  If that's not OK, take a
  1014. deep breath and prepare to sink yourself into the Color Manager...
  1015.  
  1016. What you want to do is tell CopyBits that your source pixmap will be
  1017. using the exact same color table as your destination pixmap, so that
  1018. CopyBits will say, "oh, ok, well I guess I don't need to look at what
  1019. I'm copying then, I'll just do it as fast as possible."  And it helps if
  1020. that's _true_, i.e. if you don't have to lie to CopyBits in order to get
  1021. the speed.
  1022.  
  1023. One of the ways to do this, and probably the easiest, is to set your
  1024. offscreen (source) pixmap's pmTable field to be equal to your GDevice's
  1025. pixmap's pmTable field.  Since that field is a handle, your offscreen
  1026. pixmap's color table will then and thenceforth be exactly equal to
  1027. your onscreen pixmap's.
  1028.  
  1029. (Another way, which is probably harder, is to set the offscreen's
  1030. (**pmTable).ctSeed equal to the onscreen's (**pmTable).ctSeed.  But
  1031. then, unless you update your offscreen pmTable every time you change
  1032. your onscreen pmTable, you'll be lying to CopyBits, and you may
  1033. experience nasty-looking colors if you ever try to open a port and draw
  1034. into the pixmap.)
  1035.  
  1036. Once you've done that, open up a window on that GDevice and attach a
  1037. palette to it.  Set the usage of every color that's important to you to
  1038. pmAnimated+pmExplicit.  Then, when you need to set colors, change the
  1039. colors' values and call AnimatePalette().  The pmAnimated usage will
  1040. mean that the colors won't be used by any other windows, and the
  1041. pmExplicit usage will mean that palette entry n will correspond to CLUT
  1042. entry n.
  1043.  
  1044. How's that sound?
  1045. - -- 
  1046.  Jamie McCarthy      Internet: k044477@kzoo.edu      AppleLink: j.mccarthy
  1047.  If I see one more goddam signature virus, I'm gonna scream.
  1048.  
  1049. ---------------------------
  1050.  
  1051. From: ward1@husc8.harvard.edu (Lester Ward)
  1052. Subject: Debugging INITs
  1053. Date: 7 Jul 92 18:02:49 GMT
  1054.  
  1055. This has probably been beat to death here, but I didn't see it in the FAQ
  1056. sheets.  What is the best way to debug INITs using MPW?
  1057.  
  1058. Please mail,
  1059. I'll summerize,
  1060. Thanks,
  1061. Les
  1062.  
  1063. +++++++++++++++++++++++++++
  1064.  
  1065. From: peirce@outpost.SF-Bay.org (Michael Peirce)
  1066. Date: 7 Jul 92 23:34:08 GMT
  1067. Organization: Peirce Software
  1068.  
  1069.  
  1070. In article <ward1.710532169@husc8> (comp.sys.mac.programmer), ward1@husc8.harvard.edu (Lester Ward) writes:
  1071. > This has probably been beat to death here, but I didn't see it in the FAQ
  1072. > sheets.  What is the best way to debug INITs using MPW?
  1073.  
  1074. Jasik's The Debugger can be setup to debug INITs so you can step through
  1075. your INIT at the source level.  
  1076.  
  1077. An alternative is to sprinkle lots of DebugStr's throughout your code
  1078. and do a lot of rebooting (hey, this works :-) with MacsBug installed.
  1079.  
  1080. - --  Michael Peirce      --   peirce@outpost.SF-Bay.org
  1081. - --  Peirce Software     --   Suite 301, 719 Hibiscus Place
  1082. - --                      --   San Jose, California USA 95117
  1083. - --  Makers of...        --   voice: (408) 244-6554 fax: (408) 244-6882
  1084. - --            SMOOTHIE  --   AppleLink: peirce & America Online: AFC Peirce
  1085.  
  1086. ---------------------------
  1087.  
  1088. End of C.S.M.P. Digest
  1089. **********************
  1090.